#cell attributes like area, mcherry intensity, etc at t=0
#cells with pup1-rfp
modc_cells.pup1.1 <- read_csv("~/plots/pup1-rfp-gfp-decay/5-5-20-20mGFP/data/5-5-21-20mGFP_mODC_attributes_puncta_20min.csv") %>%
rename( "gfp.mean.bg.af.sub.new" ="gfp.mean.bg.sub.new") %>%
filter(experiment == "20min")
modc_cells.pup1.2 <- read_csv("~/plots/pup1-rfp-gfp-decay/6-28-22-modc-gfp/data/6-28-22_mODC_pup1_attributes.csv") %>%
filter(experiment == "20min")
cln2_cells.pup1.1 <- read_csv("~/plots/pup1-rfp-gfp-decay/5-9-21-30mGFP/data/5-9-21-30mGFP_cln2_puncta_attributes.csv") %>%
rename( "gfp.mean.bg.af.sub.new" ="gfp.mean.bg.sub.new") %>%
filter(experiment == "20min")
cln2_cells.pup1.2 <- read_csv("~/plots/pup1-rfp-gfp-decay/6-28-22-cln2-gfp/data/6-28-22_cln2_pup1_attributes.csv")
cln2_cells.pup1.3 <- read_csv("~/plots/pup1-rfp-gfp-decay/7-20-22-cln2-gfp/data/7-20-22_cln2_pup1_attributes.csv")
#10-18-22 Repeate
cln2_cells.pup1.4 <- read_csv("~/plots/pup1-rfp-gfp-decay/10-7-22-cln2-gfp/data/10-7-22_cln2_pup1_attributes.csv")
stable_cells.pup1 <- read_csv("~/plots/pup1-rfp-gfp-decay/4-28-21-8hrGFP/data/4-28-21-8hrGFP_attributes.csv") %>%
rename("gfp.mean.bg.af.sub.new" = "gfp.mean.bg.sub.new" )
stable_cells.pup2 <- read_csv("~/plots/pup1-rfp-gfp-decay/7-20-22-stable-gfp/data/7-20-22_stable_pup1_attributes.csv")
#10-7-22 repeate
stable_cells.pup3 <- read_csv("~/plots/pup1-rfp-gfp-decay/10-7-22-stable-gfp/data/10-7-22_stable_pup1_attributes.csv")
all.pup1.data <- bind_rows(cln2_cells.pup1.4 %>%
mutate(degron = "cln2.4"),
stable_cells.pup3 %>%
mutate(degron = "stable.3")) %>%
# bind_rows(modc_cells.pup1.1 %>%
# mutate(degron = "mODC"),
# modc_cells.pup1.2 %>%
# mutate(degron = "mODC.2"),
# cln2_cells.pup1.1 %>%
# mutate(degron = "cln2"),
# cln2_cells.pup1.2 %>%
# mutate(degron = "cln2.2"),
# cln2_cells.pup1.3 %>%
# mutate(degron = "cln2.3"),
# stable_cells.pup1 %>%
# mutate(degron = "stable"),
# stable_cells.pup2 %>%
# mutate(degron = "stable.2")) %>%
select(unique.trackID,
gfp.mean.bg.af.sub.new,
gfp.sum.bg.af.sub,
area,
area.puncta,
# BB_B,
# BB_C,
Elip_B,
Elip_C,
no.of.voxels,
pos.x,
pos.y,
spheracity,
volume,
rfp.mean.bg.sub,
rfp.sum.bg.sub,
dapi.mean.bg.sub,
dapi.sum.bg.sub,
rfp.mean.bg.sub.puncta,
# rfp.mean.af.sub.puncta,
rfp.sum.bg.sub.puncta,
# rfp.sum.af.sub.puncta,
dapi.sum.bg.sub.puncta,
# dapi.sum.af.sub.puncta,
dapi.mean.bg.sub.puncta,
# dapi.mean.af.sub.puncta,
degron,area.puncta) %>%
rename("cell.id"="unique.trackID" ) %>%
mutate(red = "pup1-rfp",
treatment = "none",
cell.id = paste0(cell.id ,"_",degron,"_",red,"_",treatment))
# all.pup1.data %>%
# write_csv(.,"~/plots/all_data/all_pup1_cell_attr.csv")
#10-18-22
read_csv("~/plots/all_data/all_pup1_cell_attr.csv") %>%
bind_rows(.,all.pup1.data) %>%
write_csv(.,path = "~/plots/all_data/all_pup1_cell_attr.csv")
#old tef2-mcherry values
#repeate of the tef2-mcherry experiments
read_csv("~/plots/tef2-mch/8-4-22-calcufluor/mODC-tef2/8-4-22_modc_tef2-mch_attributes.csv")
Rows: 2504 Columns: 56
── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (5): unique.trackID, experiment, field, exp.field, sample
dbl (51): gfp.mean.bg.af.sub.new, gfp.mean.bg.sub, gfp.sum.bg.sub, avg.gfp.bg, area, pos.x, pos.y, timepoint, trac...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#combining the old tef2-mch experiment data with the repeated
experiments
tef2.mch.all.select %>%
write_csv(.,"~/plots/all_data/all_tef2-mch_attr.csv")
##MG135 proteasome inhibition experiments
1uM
cell.info.1uM <- read.csv("~/plots/proteasome_inhibition/data/4-1-22/1uM/4-1-22-GFP_mODC_1uMMG132_attributes.csv")
2.5uM
cell.info.2.5uM <- read.csv("~/plots/proteasome_inhibition/data/4-1-22/2.5uM/4-1-22-GFP_mODC_2.5uMMG132_attributes.csv")
5uM
cell.info.5uM <- read.csv("~/plots/proteasome_inhibition/data/4-1-22/5uM/4-1-22-GFP_mODC_5uMMG132_attributes.csv")
50uM
cell.info.50uM <- read.csv("~/plots/proteasome_inhibition/data/2-3-22/MG132_50uM/2-3-22-GFP_mODC_50uMMG132_attributes.csv")
Combined dataframes
all.Prot.Inhi.info %>%
write_csv(.,"~/plots/all_data/all_mg135_attr.csv")
LS0tCnRpdGxlOiAiY2VsbF9hdHRyaWJ1dGVzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojY2VsbCBhdHRyaWJ1dGVzIGxpa2UgYXJlYSwgbWNoZXJyeSBpbnRlbnNpdHksIGV0YyBhdCB0PTAKYGBge3J9CiNjZWxscyB3aXRoIHB1cDEtcmZwCm1vZGNfY2VsbHMucHVwMS4xIDwtIHJlYWRfY3N2KCJ+L3Bsb3RzL3B1cDEtcmZwLWdmcC1kZWNheS81LTUtMjAtMjBtR0ZQL2RhdGEvNS01LTIxLTIwbUdGUF9tT0RDX2F0dHJpYnV0ZXNfcHVuY3RhXzIwbWluLmNzdiIpICU+JSAKICByZW5hbWUoICJnZnAubWVhbi5iZy5hZi5zdWIubmV3IiA9ImdmcC5tZWFuLmJnLnN1Yi5uZXciKSAlPiUgCiAgZmlsdGVyKGV4cGVyaW1lbnQgPT0gIjIwbWluIikKCgptb2RjX2NlbGxzLnB1cDEuMiA8LSByZWFkX2Nzdigifi9wbG90cy9wdXAxLXJmcC1nZnAtZGVjYXkvNi0yOC0yMi1tb2RjLWdmcC9kYXRhLzYtMjgtMjJfbU9EQ19wdXAxX2F0dHJpYnV0ZXMuY3N2IikgJT4lIAogIGZpbHRlcihleHBlcmltZW50ID09ICIyMG1pbiIpCgoKY2xuMl9jZWxscy5wdXAxLjEgPC0gcmVhZF9jc3YoIn4vcGxvdHMvcHVwMS1yZnAtZ2ZwLWRlY2F5LzUtOS0yMS0zMG1HRlAvZGF0YS81LTktMjEtMzBtR0ZQX2NsbjJfcHVuY3RhX2F0dHJpYnV0ZXMuY3N2IikgJT4lIAogICByZW5hbWUoICJnZnAubWVhbi5iZy5hZi5zdWIubmV3IiA9ImdmcC5tZWFuLmJnLnN1Yi5uZXciKSAlPiUgCiAgZmlsdGVyKGV4cGVyaW1lbnQgPT0gIjIwbWluIikKCmNsbjJfY2VsbHMucHVwMS4yIDwtIHJlYWRfY3N2KCJ+L3Bsb3RzL3B1cDEtcmZwLWdmcC1kZWNheS82LTI4LTIyLWNsbjItZ2ZwL2RhdGEvNi0yOC0yMl9jbG4yX3B1cDFfYXR0cmlidXRlcy5jc3YiKQpjbG4yX2NlbGxzLnB1cDEuMyA8LSByZWFkX2Nzdigifi9wbG90cy9wdXAxLXJmcC1nZnAtZGVjYXkvNy0yMC0yMi1jbG4yLWdmcC9kYXRhLzctMjAtMjJfY2xuMl9wdXAxX2F0dHJpYnV0ZXMuY3N2IikKIzEwLTE4LTIyIFJlcGVhdGUKY2xuMl9jZWxscy5wdXAxLjQgPC0gcmVhZF9jc3YoIn4vcGxvdHMvcHVwMS1yZnAtZ2ZwLWRlY2F5LzEwLTctMjItY2xuMi1nZnAvZGF0YS8xMC03LTIyX2NsbjJfcHVwMV9hdHRyaWJ1dGVzLmNzdiIpCgoKc3RhYmxlX2NlbGxzLnB1cDEgPC0gcmVhZF9jc3YoIn4vcGxvdHMvcHVwMS1yZnAtZ2ZwLWRlY2F5LzQtMjgtMjEtOGhyR0ZQL2RhdGEvNC0yOC0yMS04aHJHRlBfYXR0cmlidXRlcy5jc3YiKSAlPiUgCiAgcmVuYW1lKCJnZnAubWVhbi5iZy5hZi5zdWIubmV3IiA9ICJnZnAubWVhbi5iZy5zdWIubmV3IiApCgpzdGFibGVfY2VsbHMucHVwMiA8LSByZWFkX2Nzdigifi9wbG90cy9wdXAxLXJmcC1nZnAtZGVjYXkvNy0yMC0yMi1zdGFibGUtZ2ZwL2RhdGEvNy0yMC0yMl9zdGFibGVfcHVwMV9hdHRyaWJ1dGVzLmNzdiIpCiMxMC03LTIyIHJlcGVhdGUKc3RhYmxlX2NlbGxzLnB1cDMgPC0gcmVhZF9jc3YoIn4vcGxvdHMvcHVwMS1yZnAtZ2ZwLWRlY2F5LzEwLTctMjItc3RhYmxlLWdmcC9kYXRhLzEwLTctMjJfc3RhYmxlX3B1cDFfYXR0cmlidXRlcy5jc3YiKQoKCmFsbC5wdXAxLmRhdGEgPC0gYmluZF9yb3dzKGNsbjJfY2VsbHMucHVwMS40ICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUoZGVncm9uID0gImNsbjIuNCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFibGVfY2VsbHMucHVwMyAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKGRlZ3JvbiA9ICJzdGFibGUuMyIpKSAlPiUgCiAgIyBiaW5kX3Jvd3MobW9kY19jZWxscy5wdXAxLjEgJT4lIAogICMgICAgICAgICAgIG11dGF0ZShkZWdyb24gPSAibU9EQyIpLAogICMgICAgICAgICAgIG1vZGNfY2VsbHMucHVwMS4yICU+JSAKICAjICAgICAgICAgICAgIG11dGF0ZShkZWdyb24gPSAibU9EQy4yIiksCiAgIyAgICAgICAgIGNsbjJfY2VsbHMucHVwMS4xICU+JSAKICAjICAgICAgICAgIG11dGF0ZShkZWdyb24gPSAiY2xuMiIpLAogICMgICAgICAgICBjbG4yX2NlbGxzLnB1cDEuMiAlPiUgCiAgIyAgICAgICAgICAgbXV0YXRlKGRlZ3JvbiA9ICJjbG4yLjIiKSwKICAjICAgICAgICAgIGNsbjJfY2VsbHMucHVwMS4zICU+JSAKICAjICAgICAgICAgICBtdXRhdGUoZGVncm9uID0gImNsbjIuMyIpLAogICMgICAgICAgICBzdGFibGVfY2VsbHMucHVwMSAlPiUgCiAgIyAgICAgICAgICAgbXV0YXRlKGRlZ3JvbiA9ICJzdGFibGUiKSwKICAjICAgICAgICAgc3RhYmxlX2NlbGxzLnB1cDIgJT4lIAogICMgICAgICAgICAgIG11dGF0ZShkZWdyb24gPSAic3RhYmxlLjIiKSkgJT4lIAogIHNlbGVjdCh1bmlxdWUudHJhY2tJRCwgCiAgICAgICAgIGdmcC5tZWFuLmJnLmFmLnN1Yi5uZXcsIAogICAgICAgICBnZnAuc3VtLmJnLmFmLnN1YiwKICAgICAgICAgYXJlYSwgCiAgICAgICAgIGFyZWEucHVuY3RhLAogICAgICAgICAjIEJCX0IsCiAgICAgICAgICMgQkJfQywKICAgICAgICAgRWxpcF9CLAogICAgICAgICBFbGlwX0MsCiAgICAgICAgIG5vLm9mLnZveGVscywKICAgICAgICAgcG9zLngsCiAgICAgICAgIHBvcy55LAogICAgICAgICBzcGhlcmFjaXR5LAogICAgICAgICB2b2x1bWUsCiAgICAgICAgIHJmcC5tZWFuLmJnLnN1YiwKICAgICAgICAgcmZwLnN1bS5iZy5zdWIsCiAgICAgICAgIGRhcGkubWVhbi5iZy5zdWIsCiAgICAgICAgIGRhcGkuc3VtLmJnLnN1YiwKICAgICAgICAgcmZwLm1lYW4uYmcuc3ViLnB1bmN0YSwKICAgICAgICAgIyByZnAubWVhbi5hZi5zdWIucHVuY3RhLAogICAgICAgICByZnAuc3VtLmJnLnN1Yi5wdW5jdGEsCiAgICAgICAgICMgcmZwLnN1bS5hZi5zdWIucHVuY3RhLAogICAgICAgICBkYXBpLnN1bS5iZy5zdWIucHVuY3RhLAogICAgICAgICAjIGRhcGkuc3VtLmFmLnN1Yi5wdW5jdGEsCiAgICAgICAgIGRhcGkubWVhbi5iZy5zdWIucHVuY3RhLAogICAgICAgICAjIGRhcGkubWVhbi5hZi5zdWIucHVuY3RhLAogICAgICAgICBkZWdyb24sYXJlYS5wdW5jdGEpICU+JSAKICByZW5hbWUoImNlbGwuaWQiPSJ1bmlxdWUudHJhY2tJRCIgKSAlPiUgCiAgbXV0YXRlKHJlZCA9ICJwdXAxLXJmcCIsCiAgICAgICAgIHRyZWF0bWVudCA9ICJub25lIiwKICAgICAgICAgY2VsbC5pZCA9IHBhc3RlMChjZWxsLmlkICwiXyIsZGVncm9uLCJfIixyZWQsIl8iLHRyZWF0bWVudCkpCgojIGFsbC5wdXAxLmRhdGEgJT4lIAojICAgd3JpdGVfY3N2KC4sIn4vcGxvdHMvYWxsX2RhdGEvYWxsX3B1cDFfY2VsbF9hdHRyLmNzdiIpCgojMTAtMTgtMjIgCnJlYWRfY3N2KCJ+L3Bsb3RzL2FsbF9kYXRhL2FsbF9wdXAxX2NlbGxfYXR0ci5jc3YiKSAlPiUgCiAgYmluZF9yb3dzKC4sYWxsLnB1cDEuZGF0YSkgJT4lIAogIHdyaXRlX2NzdiguLHBhdGggPSAifi9wbG90cy9hbGxfZGF0YS9hbGxfcHVwMV9jZWxsX2F0dHIuY3N2IikKCgpgYGAKCgoKI29sZCB0ZWYyLW1jaGVycnkgdmFsdWVzCmBgYHtyfQptb2RjX2NlbGxzLnRlZjJtY2guZ2ZwLjEgPC0gcmVhZF9jc3YoIn4vcGxvdHMvNy0xLTIwL2RhdGFmcmFtZXMvZ2ZwX21PRENfYXJlYV9pbnRlbnNpdHkuY3N2IikgJT4lIGZpbHRlcihpbWFnZS5ubyA9PSAxKQpjbG4yX2NlbGxzLnRlZjJtY2guZ2ZwLjEgPC0gcmVhZF9jc3YoIn4vcGxvdHMvNy0yLTIwL25ld19maWx0ZXJzL2dmcF9jbG4yUGVzdC5jc3YiKQoKc3RhYmxlX2NlbGxzLnRlZjJtY2guZ2ZwIDwtIHJlYWRfY3N2KCJ+L3Bsb3RzLzctMTAtMjAtOGhyZ2ZwL2RhdGFmcmFtZXMvZ2ZwX3N0YWJsZV9maWx0ZXJlZF9hdHRyaWJ1dGVzLmNzdiIpCgojY2VsbHMgd2l0aCBjb25zdGl0dXRpdmUgbWNoZXJyeSwgdGhlaXIgbWNoZXJyeSB2YWx1ZXMKbW9kY19jZWxscy50ZWYybWNoZXJyeS5tY2hlcnJ5IDwtIHJlYWRfY3N2KCJ+L3Bsb3RzLzctMS0yMC9kYXRhZnJhbWVzL21jaGVycnlfZmlsdGVyZWRfR0ZQLW1PREMuY3N2IikKY2xuMl9jZWxscy50ZWYybWNoZXJyeS5tY2hlcnJ5IDwtIHJlYWRfY3N2KCJ+L3Bsb3RzLzctMi0yMC9uZXdfZmlsdGVycy9kYXRhL21jaGVycnlfY2xuMlBlc3RfZmlsdGVyZWQuY3N2IikKc3RhYmxlX2NlbGxzLnRlZjJtY2hlcnJ5Lm1jaGVycnkgPC0gcmVhZF9jc3YoIn4vcGxvdHMvNy0xMC0yMC04aHJnZnAvZGF0YWZyYW1lcy9tY2hlcnJ5X2ZpbHRlcmVkX0dGUC1zdGFibGUuY3N2IikKCgojY29tYmluaW5nIHRoZSBnZnAgYW5kIG1jaGVycnkgdmFsdWVzIG9mIGNlbGxzIHdpdGggY29uc3RpdHV0aXZlIG1jaGVycnkuIAptb2RjX3RlZjJtQ2hfZ2ZwLm1jaCA8LSBtb2RjX2NlbGxzLnRlZjJtY2guZ2ZwLjEgJT4lIAogIGZpbHRlcihpbWFnZS5ubyA9PSAxKSAlPiUgCiAgc2VsZWN0KGNlbGwuaWQsIGFyZWEsIGdmcE1lYW5CZ0FGc3ViLCBpbWFnZS5ubykgJT4lIAogIGxlZnRfam9pbiguLCBtb2RjX2NlbGxzLnRlZjJtY2hlcnJ5Lm1jaGVycnkgJT4lIAogICAgICAgICAgICAgIGZpbHRlcihpbWFnZS5ubyA9PSAxKSAlPiUgCiAgICAgICAgICAgICAgc2VsZWN0KGNlbGwuaWQsIGFyZWEsIG1jaGVycnlNZWFuQmdBRnN1YiwgaW1hZ2Uubm8pICwgYnkgPSBjKCJjZWxsLmlkIiwgImFyZWEiLCAiaW1hZ2Uubm8iKSkKCgpjbG4yX3RlZjJtQ2hfZ2ZwLm1jaCA8LSBjbG4yX2NlbGxzLnRlZjJtY2guZ2ZwLjEgJT4lIAogIGZpbHRlcihpbWFnZS5ubyA9PSAxKSAlPiUgCiAgc2VsZWN0KGNlbGwuaWQsIGFyZWEsIGdmcE1lYW5CZ0FGc3ViLCBpbWFnZS5ubykgJT4lIAogIGxlZnRfam9pbiguLGNsbjJfY2VsbHMudGVmMm1jaGVycnkubWNoZXJyeSAlPiUgCiAgICAgICAgICAgICAgZmlsdGVyKGltYWdlLm5vID09IDEpICU+JSAKICAgICAgICAgICAgICBzZWxlY3QoY2VsbC5pZCwgYXJlYSwgbWNoZXJyeU1lYW5CZ0FGc3ViLCBpbWFnZS5ubykgLCBieSA9IGMoImNlbGwuaWQiLCAiYXJlYSIsICJpbWFnZS5ubyIpKQoKc3RhYmxlX3RlZjJtQ2hfZ2ZwLm1jaCA8LSBzdGFibGVfY2VsbHMudGVmMm1jaC5nZnAgJT4lIAogIGZpbHRlcihpbWFnZS5ubyA9PSAxKSAlPiUgCiAgc2VsZWN0KGNlbGwuaWQsIGFyZWEsIGdmcE1lYW5CZ0FGc3ViLCBpbWFnZS5ubykgJT4lIAogIGxlZnRfam9pbiguLHN0YWJsZV9jZWxscy50ZWYybWNoZXJyeS5tY2hlcnJ5ICU+JSAKICAgICAgICAgICAgICBmaWx0ZXIoaW1hZ2Uubm8gPT0gMSkgJT4lIAogICAgICAgICAgICAgIHNlbGVjdChjZWxsLmlkLCBhcmVhLCBtY2hlcnJ5TWVhbkJnQUZzdWIsIGltYWdlLm5vKSAsIGJ5ID0gYygiY2VsbC5pZCIsICJhcmVhIiwgImltYWdlLm5vIikpCgoKdGVmMi5vbGQgPC0gbW9kY190ZWYybUNoX2dmcC5tY2ggJT4lIAogIG11dGF0ZShkZWdyb24gPSAibU9EQyIpICU+JSAKICBiaW5kX3Jvd3MoLixjbG4yX3RlZjJtQ2hfZ2ZwLm1jaCAlPiUgCiAgICAgICAgICAgICAgbXV0YXRlKGRlZ3JvbiA9ICJjbG4yIiksCiAgICAgICAgICAgIHN0YWJsZV90ZWYybUNoX2dmcC5tY2ggJT4lIAogICAgICAgICAgICAgIG11dGF0ZShkZWdyb24gPSAic3RhYmxlIikpICU+JSAKICBtdXRhdGUocmVkID0gInRlZjItbUNoZXJyeSIsIAogICAgICAgICB0cmVhdG1lbnQgPSAibm9uZSIsCiAgICAgICAgIGV4cGVyaW1lbnQgPSBzdHJfc3BsaXQoY2VsbC5pZCAsICJfIiwgc2ltcGxpZnkgPSBUKVssMl0sCiAgICAgICAgIGV4cC5maWVsZCA9IHBhc3RlMChzdHJfc3BsaXQoY2VsbC5pZCAsICJfIiwgc2ltcGxpZnkgPSBUKVssMl0sIl8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3NwbGl0KGNlbGwuaWQgLCAiXyIsIHNpbXBsaWZ5ID0gVClbLDNdKSkgJT4lIAogIGZpbHRlcihleHBlcmltZW50ID09ICIyMG1pbiIpCgpgYGAKI3JlcGVhdGUgb2YgdGhlIHRlZjItbWNoZXJyeSBleHBlcmltZW50cyAKYGBge3J9CiNjZWxscyB3aXRoIGNvbnN0aXR1dGl2ZSBtQ2hlcnJ5LCB0aGVpciBnZnAgdmFsdWVzCm1vZGNfY2VsbHMudGVmMm1jaC5nZnAuMiA8LSByZWFkX2Nzdigifi9wbG90cy90ZWYyLW1jaC82LTIwLTIyL21vZGMtdGVmMi1tY2gvNi0yMC0yMl9tb2RjX3RlZjItbWNoX2F0dHJpYnV0ZXMuY3N2IikKbW9kY19jZWxscy50ZWYybWNoLmdmcC4zIDwtIHJlYWRfY3N2KCJ+L3Bsb3RzL3RlZjItbWNoLzgtNC0yMi1jYWxjdWZsdW9yL21PREMtdGVmMi84LTQtMjJfbW9kY190ZWYyLW1jaF9hdHRyaWJ1dGVzLmNzdiIpICN0aGlzIGhhcyBidWRzY2FyIHN0YWluaW5nIApjbG4yX2NlbGxzLnRlZjJtY2guZ2ZwLjIgPC0gcmVhZF9jc3YoIn4vcGxvdHMvdGVmMi1tY2gvNi0yMC0yMi9jbG4yLXRlZjItbWNoLzYtMjAtMjJfY2xuMl90ZWYyLW1jaF9hdHRyaWJ1dGVzLmNzdiIpCgpgYGAKCiNjb21iaW5pbmcgdGhlIG9sZCB0ZWYyLW1jaCBleHBlcmltZW50IGRhdGEgd2l0aCB0aGUgcmVwZWF0ZWQgZXhwZXJpbWVudHMgCmBgYHtyfQp0ZWYyLm1jaC5hbGwgPC0gdGVmMi5vbGQgJT4lIAogIGJpbmRfcm93cyguLGJpbmRfcm93cyhtb2RjX2NlbGxzLnRlZjJtY2guZ2ZwLjIgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShkZWdyb24gPSAibU9EQy4yIiksCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGNfY2VsbHMudGVmMm1jaC5nZnAuMyAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKGRlZ3JvbiA9ICJtT0RDLjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgY2xuMl9jZWxscy50ZWYybWNoLmdmcC4yICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUoZGVncm9uID0gImNsbjIuMiIpKSAlPiUgCiAgICAgICAgICAgICAgcmVuYW1lKCJnZnBNZWFuQmdBRnN1YiIgPSAiZ2ZwLm1lYW4uYmcuYWYuc3ViLm5ldyIsCiAgICAgICAgICAgICAgICAgICAgICJjZWxsLmlkIiA9ICJ1bmlxdWUudHJhY2tJRCIpICU+JSAKICAgICAgICAgICAgICBtdXRhdGUocmVkID0gInRlZjItbUNoZXJyeSIsCiAgICAgICAgICAgICAgICAgICAgIHRyZWF0bWVudCA9ICJub25lIikgJT4lIAogICAgICAgICAgICAgIGZpbHRlcih0aW1lcG9pbnQgPT0gMSkpICU+JSAKICBzZWxlY3QoLXRpbWUsIC10aW1lcG9pbnQsIC1sbi5nZnAsIC1pbWFnZSwtbG4uZ2ZwLmRpZiwtdHJhY2tJRCkKCmBgYAoKYGBge3J9CnRlZjIubWNoLmFsbC5zZWxlY3QgPC0gdGVmMi5tY2guYWxsICU+JSAKIHNlbGVjdChjZWxsLmlkLAogICAgICAgIGFyZWEsCiAgICAgICAgZ2ZwTWVhbkJnQUZzdWIsCiAgICAgICAgbWNoZXJyeU1lYW5CZ0FGc3ViLAogICAgICAgIGRlZ3JvbiwKICAgICAgICByZWQsCiAgICAgICAgdHJlYXRtZW50LAogICAgICAgIGV4cGVyaW1lbnQsCiAgICAgICAgZXhwLmZpZWxkLAogICAgICAgICBFbGlwX0IsCiAgICAgICAgIEVsaXBfQywKICAgICAgICAgbm8ub2Yudm94ZWxzLAogICAgICAgICBwb3MueCwKICAgICAgICAgcG9zLnksCiAgICAgICAgIHNwaGVyYWNpdHksCiAgICAgICAgIHZvbHVtZSwgCiAgICAgICAgYXJlYS5wdW5jdGEsCiAgICAgICAgcG9zLngucHVuY3RhLAogICAgICAgIHBvcy55LnB1bmN0YSwKICAgICAgICAgcmZwLm1lYW4uYmcuc3ViLAogICAgICAgICBkYXBpLm1lYW4uYmcuc3ViLAogICAgICAgICByZnAubWVhbi5iZy5zdWIucHVuY3RhLAogICAgICAgICBkYXBpLm1lYW4uYmcuc3ViLnB1bmN0YSwKICAgICAgIG5vLmJ1ZC5zY2FycykgJT4lIAogIG11dGF0ZShjZWxsLmlkID0gcGFzdGUwKGNlbGwuaWQgLCJfIixkZWdyb24sIl8iLHJlZCwiXyIsdHJlYXRtZW50KSkKYGBgCmBgYHtyfQp0ZWYyLm1jaC5hbGwuc2VsZWN0ICU+JSAKICB3cml0ZV9jc3YoLiwifi9wbG90cy9hbGxfZGF0YS9hbGxfdGVmMi1tY2hfYXR0ci5jc3YiKQpgYGAKCgojI01HMTM1IHByb3RlYXNvbWUgaW5oaWJpdGlvbiBleHBlcmltZW50cwpgYGB7cn0KZG1zb19jZWxsX2F0dHJpYnV0ZXMxIDwtIHJlYWQuY3N2KCJ+L3Bsb3RzL3Byb3RlYXNvbWVfaW5oaWJpdGlvbi9kYXRhLzItMy0yMi9ETVNPLzItMy0yMi1HRlBfbU9EQ19ETVNPX2F0dHJpYnV0ZXMuY3N2IikKZG1zb19jZWxsX2F0dHJpYnV0ZXMyIDwtIHJlYWQuY3N2KCJ+L3Bsb3RzL3Byb3RlYXNvbWVfaW5oaWJpdGlvbi9kYXRhLzQtMS0yMi9ETVNPLzQtMS0yMi1HRlBfbU9EQ19ETVNPX2F0dHJpYnV0ZXMuY3N2IikKYGBgCgoxdU0KYGBge3J9CmNlbGwuaW5mby4xdU0gPC0gcmVhZC5jc3YoIn4vcGxvdHMvcHJvdGVhc29tZV9pbmhpYml0aW9uL2RhdGEvNC0xLTIyLzF1TS80LTEtMjItR0ZQX21PRENfMXVNTUcxMzJfYXR0cmlidXRlcy5jc3YiKQpgYGAKCjIuNXVNCmBgYHtyfQpjZWxsLmluZm8uMi41dU0gPC0gcmVhZC5jc3YoIn4vcGxvdHMvcHJvdGVhc29tZV9pbmhpYml0aW9uL2RhdGEvNC0xLTIyLzIuNXVNLzQtMS0yMi1HRlBfbU9EQ18yLjV1TU1HMTMyX2F0dHJpYnV0ZXMuY3N2IikKYGBgCgo1dU0KYGBge3J9CgpjZWxsLmluZm8uNXVNIDwtIHJlYWQuY3N2KCJ+L3Bsb3RzL3Byb3RlYXNvbWVfaW5oaWJpdGlvbi9kYXRhLzQtMS0yMi81dU0vNC0xLTIyLUdGUF9tT0RDXzV1TU1HMTMyX2F0dHJpYnV0ZXMuY3N2IikKYGBgCgo1MHVNCmBgYHtyfQoKY2VsbC5pbmZvLjUwdU0gPC0gcmVhZC5jc3YoIn4vcGxvdHMvcHJvdGVhc29tZV9pbmhpYml0aW9uL2RhdGEvMi0zLTIyL01HMTMyXzUwdU0vMi0zLTIyLUdGUF9tT0RDXzUwdU1NRzEzMl9hdHRyaWJ1dGVzLmNzdiIpCmBgYAoKQ29tYmluZWQgZGF0YWZyYW1lcyAKYGBge3J9CmFsbC5Qcm90LkluaGkuaW5mbyA8LSBiaW5kX3Jvd3MoZG1zb19jZWxsX2F0dHJpYnV0ZXMxICU+JSAKICAgICAgICAgICAgbXV0YXRlKHRyZWF0bWVudCA9ICJkbXNvMSIpLCAKICAgICAgICAgICAgZG1zb19jZWxsX2F0dHJpYnV0ZXMyICU+JSAKICAgICAgICAgICAgbXV0YXRlKHRyZWF0bWVudCA9ICJkbXNvMiIpLAogICAgICAgICAgICBjZWxsLmluZm8uMXVNICU+JSAKICAgICAgICAgICAgICBtdXRhdGUodHJlYXRtZW50ID0gIjF1TSIpLAogICAgICAgICAgICBjZWxsLmluZm8uMi41dU0gJT4lIAogICAgICAgICAgICAgICBtdXRhdGUodHJlYXRtZW50ID0gIjIuNXVNIiksCiAgICAgICAgICAgIGNlbGwuaW5mby41dU0gJT4lIAogICAgICAgICAgICAgICBtdXRhdGUodHJlYXRtZW50ID0gIjV1TSIpLAogICAgICAgICAgICBjZWxsLmluZm8uNTB1TSAlPiUgCiAgICAgICAgICAgICAgIG11dGF0ZSh0cmVhdG1lbnQgPSAiNTB1TSIpCiAgICAgICAgICApICU+JSAKICBtdXRhdGUocmZwLm1lYW4uYmcuc3ViLnB1bmN0YSA9IGlmZWxzZShpcy5uYShyZnAubWVhbi5iZy5zdWIucHVuY3RhKSwgMCwgcmZwLm1lYW4uYmcuc3ViLnB1bmN0YSksIAogICAgICAgICBkZWdyb24gPSAibU9EQyIsCiAgICAgICAgIHJlZCA9ICJwdXAxLXJmcCIpCmBgYAoKYGBge3J9CmFsbC5Qcm90LkluaGkuaW5mbyAlPiUgCiAgd3JpdGVfY3N2KC4sIn4vcGxvdHMvYWxsX2RhdGEvYWxsX21nMTM1X2F0dHIuY3N2IikKYGBgCgo=